package com.peng.sparktest.sparksql

import org.apache.spark.sql.{DataFrame, SparkSession}

/**
 * 真正与hive metastore融合
 */
object SparkSql05_OnHive {
  def main(args: Array[String]): Unit = {
    val session: SparkSession = SparkSession.builder()
      .appName("onhive")
      .master("local")
      //      .config("spark.sql.shuffle.partitions", "1")
      .config("hive.metastore.uris", "thrift://dream01:9083") // metastore位置
      .enableHiveSupport()
      .getOrCreate()

    session.sparkContext.setLogLevel("ERROR")


    session.sql("show tables").show() //此时，发现这些表，就是hive中default中那些表， 此时，达成了统一视图

    import session.implicits._

    val dataFrame: DataFrame = List("qi", "shi", "wo").toDF("word")

    dataFrame.createTempView("spark_words")

    session.sql("use mydb")

    //接下来，如果涉及到表的数据而非元数据，都是需要和hdfs打交道，因此需要关于hdfs的配置
    //    session.sql("create table spark_create(name string)")

    session.sql("insert into spark_create values('liming'),('zhangsan')")

    session.catalog.listTables().show() //包含了hive中的表和spark的临时表

    session.sql("select * from spark_create").show()


    //将临时表持久到hive的元数据中
    //    dataFrame.write.saveAsTable("spark_words")


  }

}
